User-Mode Driver Framework
   HOME

TheInfoList



OR:

User-Mode Driver Framework (UMDF) is a device-driver development platform first introduced with
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washi ...
's
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
, and is also available for
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
. It facilitates the creation of drivers for certain classes of devices.Programming Drivers for the UMDF
/ref>


Overview

Standard device drivers can be difficult to write because they must handle a very wide range of system and device states, particularly in a multithreaded software environment. Badly written device drivers can cause severe damage to a system (e.g., BSoD or data corruption) since all standard drivers have high privileges when accessing the kernel directly. The User-Mode Driver Framework insulates the kernel from the problems of direct driver access, instead providing a new class of driver with a dedicated
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
at the user level of interrupts and memory management. If an error occurs, the new framework allows for an immediate driver restart without impacting the system. This is particularly useful for devices that are intermittently connected to the system or support hot swapping via a bus technology such as USB or
FireWire IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony an ...
. According to Microsoft, UMDF drivers are simpler to write and debug than kernel-mode drivers. However, UMDF would not be used for performance-intensive or highly
stateful In information technology and computer science, a system is described as stateful if it is designed to remember preceding events or user interactions; the remembered information is called the state of the system. The set of states a system can o ...
devices. The first version of the UMDF was shipped as part of
Windows Media Player Windows Media Player (WMP) is the first media player and media library application that was developed by Microsoft for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as ...
version 10 on 2004-10-12. Code-named "Crescent", it was designed to support the Media Transfer Protocol driver, and no public interfaces or documentation were provided for it. Later, Microsoft decided to turn UMDF into a device driver development platform.


Version history

* User-Mode Driver Framework 1.5-1.9, supports
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
and newer. * User-Mode Driver Framework 1.11, supports
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
and later, and Windows Server 2008 and later. * User-Mode Driver Framework 2.0, which supports
Windows 8.1 Windows 8.1 is a release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on August 27, 2013, and broadly released for retail sale on October 17, 2013, about a year after the retail release of its pre ...
and newer.


Architecture

A UMDF Driver is a DLL based on Microsoft's Component Object Model (COM). However, UMDF does not use COM for loading, unloading, or controlling concurrency; it only uses COM as a
programming pattern HTTP Switchboard, In software engineering, a software design pattern is a general, reusability, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directl ...
, for example exploiting COM's ''
IUnknown In computer programming, the IUnknown interface is the fundamental interface in the Component Object Model (COM). The COM specification mandates that COM objects must implement this interface. Furthermore, every other COM interface must be derived ...
'' interface. At startup, UMDF calls ''DllGetClassObject'' to get a pointer to an ''IClassFactory'' interface in the driver and then uses the ''CreateInstance'' method of the IClassFactory interface to create an instance of the driver callback object. The driver object is an instance of the framework-provided ''IWDFDriver'' interface. The driver provides a set of callbacks via the ''IDriverEntry'' COM interface, which is the main entry point for driver customization.


See also

* Windows Driver Frameworks (WDF) *
Kernel-Mode Driver Framework The Kernel-Mode Driver Framework (KMDF) is a driver framework developed by Microsoft as a tool to aid driver developers create and maintain kernel mode device drivers for Windows 2000 and later releases. It is one of the frameworks included in t ...
(KMDF)


References


External links

*
Peter Wieland's blog
– developer lead on the UMDF team at Microsoft {{Microsoft FOSS Device drivers Free and open-source software Microsoft application programming interfaces Microsoft free software Software using the MIT license Windows-only free software